package property

class MutableProperty[T](protected implicit val manifest: Manifest[T]) extends Property[T] {
	def this(initialValue: T)(implicit manifest: Manifest[T]) = {
		this()
		apply(initialValue)
	}

	@volatile protected var _value: T = _

	def apply() = _value
	
	def apply(value: T): Property[T] = {
		this._value = value
		
		this
	}
}